package controller;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import dao.*;
import db.DbConnection;
import model.Benutzer;
import model.Bewertung;
import model.BewertungListe;
import model.artikelListe;
import model.benutzerListe;

public class BenutzerController {
	Connection con = DbConnection.getInstance();
	BenutzerDAO dao = new BenutzerDAO();
	BewertungDAO bdao = new BewertungDAO();
	ResultSet rs;
	artikelListe aListe = new artikelListe();
	
	
	public boolean registrieren(String Vorname, String Nachname,String Geburtstag, String Email, String Benutzername,String Passwort, String WPasswort) {
		boolean prue = false; 
		try {
			if (dao.getBenutzerByName(Benutzername) != null) {
				prue = true;
			}

			if (Passwort.equals(WPasswort) && prue == false)
			{
				return dao.saveBenutzer(new Benutzer(Vorname, Nachname, Geburtstag, Email, Benutzername, Passwort));
			} 
			else
			{
				return false; 
			}
		} catch (SQLException e) {
			e.printStackTrace();
			return false;
		}
	}
	
	public Benutzer login(String Benutzername, String Passwort)
	{
		Benutzer b = null;
		
		try {
			b = dao.getBenutzerByName(Benutzername);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		if (b != null && b.get_Passwort().equals(Passwort)) {
			return b;
		}
		
		return null;
	}
	

	
	//Ab hier Bewertungs Methoden
	
	
	public artikelListe getVerkaeuferZuBewerten(String user){
		BewertungDAO Dao = new BewertungDAO();
		artikelListe toReturn = new artikelListe();
		toReturn= Dao.getVerkaeufer(user);
		return toReturn;
	}

	public boolean bewertungAbgeben(Bewertung b){
		boolean toReturn;
		BewertungDAO bDao = new BewertungDAO();
		
		try {
			bDao.speichereBewertung(b);
				toReturn=true;
			
		} catch (SQLException e) {
			toReturn=false;
			e.printStackTrace();
		}
		return toReturn;
	}

	public BewertungListe getAlleBewertungen(String user){
		
		BewertungListe toReturn = new BewertungListe();
		BewertungDAO dao = new BewertungDAO();
		try {
			toReturn = dao.getBewertungenByKaeufer(user);
		} catch (SQLException e) {
			
			e.printStackTrace();
		}
		
		return toReturn;
		
		
	}

}


